Bienvenid@s a la segunda tarea del curso Statistical Thinking. Esta tarea tiene como objetivo evaluar los contenidos teóricos de la segunda parte del curso, los cuales se enfocan principalmente en inferencia estadística, diseño de experimentos y test de hipótesis. Si aún no han visto las clases, se recomienda visitar los enlaces de las referencias.
La tarea consta de una parte teórica que busca evaluar conceptos vistos en clases. Seguido por una parte práctica con el fin de introducirlos a la programación en R enfocada en el análisis estadístico de datos.
Slides de las clases:
Enlaces a videos de las clases:
Documentación:
Usted deberá resolver cada uno de los experimentos computacionales a través de la programación en R. Para esto se le aconseja que cree funciones en R, ya que le facilitará la ejecución de gran parte de lo solicitado.
Para el desarrollo preste mucha atención en los enunciados, ya que se le solicitará la implementación de métodos sin uso de funciones predefinidas. Por otro lado, Las librerías permitidas para desarrollar de la tarea 2 son las siguientes:
# Manipulación de estructuras
library(tidyverse)
# Para realizar plots
library(ggplot2)
library(plotly)
# Manipulación de varios plots en una imagen.
library(gridExtra)
# librería para bootstrap
library(boot)
Esta pregunta tiene como objetivo comprobar a través de gráficos las características que poseen los estimadores.Por favor responda de forma separada las siguientes preguntas:
En clases se vio que el estimador \(\hat{p}_{n} = \frac{1}{n} \displaystyle{\sum_{i=1}^{n}}X_{i}\) es un estimador consistente para \(X_{i}\) Bernoulli de tasa \(p\), verifique esto númericamente para una distribución Bernoulli de \(p=0.5\), es decir grafique como se ve \(\hat{p}_{n}\) para valores de \(n\) y compárelo con el valor verdadero.
Sabemos que no todos los estimadores insesgados son consistentes. Considere el estimador \(T_{n} = \hat{p}_{n} + \epsilon_{n}\) donde \(\epsilon_{n} \sim \mathcal{N}(0,1)\) es posible verificar que \(T_{n}\) es insesgado pero no es consistente, para ver esto repita lo que realizo en el punto anterior y estudie lo que sucede. ¿Porque cree que no es consistente el estimador?, Justifique su respuesta.
Respuesta:
El objetivo de esta pregunta es visualizar los intervalos de
confianza en datos simulados de una población, para visualizar la
incertidumbre que presenta una estimación. Para esto, ustedes deberán
generar datos de una distribución exponencial, la cual deberán
considerar como los datos de la población. En base a los datos
generados, estimen la distribución de la media de la población a través
de la sampling distribution de la media. Notar que el valor
obtenido en cada muestra les entregará un estimador de la media, o sea,
para cada valor podremos calcular un intervalo de confianza. Hecho esto,
calculen el intervalo de confianza del \(95\%\) para cada una de las medias
estimadas, utilizando la función de cuartil vista en clases.
Para la elaboración de esta parte de la tarea, se recomienda realizar el experimento con la siguiente secuencialidad:
sampling distribution con un tamaño de muestra igual a
\(30\) sobre los datos generados de la
población. Repita la obtención de la media un número elevado de veces
(recomendación \(5000\) veces).Notar: Responder cada una de las preguntas señaladas en esta sección.
Hints:
sampling distribution podría serle
útil el comando sample().
Del gráfico es posible observar que la línea punteada es la media de la población y los puntos de colores son las estimaciones con sus respectivos intervalos de confianza. Notar que para el plot no se utilizaron las 5000 veces, se recomienda utilizar 100 valores para visualizar bien el fenómeno.
Respuesta:
# Definimos tamaños de muestreo
tamano_muestra = 30
n_muestras = 5000
# Generamos una exponencial para luego generar el subsampling de ella
exponencial = rexp(10000, rate = 2)
# Obtenemos la media poblacional de la exponencial
# Sampling distribution, calculo del intervalo de confianza y proporción.
# - En base a la distribución exponencial, generamos multiples sampling
# distribution.
# - Se estima la media del muestreos y obtenemos el intervalo de confianza de
# cada una de las muestras
# Plot de Intervalos de confianza (ver respuesta esperada)
# Plot de proporción de Intervalos de confianza
En esta pregunta deberán trabajar con el dataset
Body Measurements_original.csv. El objetivo será visualizar
e inferir los parámetros que componen a dos variables del dataset. Para
esto deberá visualizar el comportamiento de la likelihood, utilizando
diferentes cantidades de datos, y realizar la optimización de la
likelihood para obtener los estimadores de las variables a través de la
función nlminb(). Notar que esta pregunta consiste en dos
partes.
TotalHeight, donde deberá asumir y realizar los
siguientes puntos:TotalHeight distribuyen de forma gaussiana. Visualice esto
a través de un gráfico de densidad en la variable
TotalHeight.TotalHeight. ¿Qué se puede observar acerca del
comportamiento del estimador \(\mu\)?,
responda brevemente esta pregunta.nlminb() sobre la likelihood y encuentre el máximo o mínimo
del problema a optimizar. Señale implícitamente cuales son los valores
obtenidos para \(\sigma\) y \(\mu\).Age, y estimar a
traves de la -log(likelihood) solo los parámetros de la
distribución que observa (notar que solo debe inferir los estimadores de
variable escogida). Para señalar la distribución de los datos se
recomienda realizar el plot de densidad y comparar con el comportamiento
de las distribuciones teóricas vistas en clases.Cabe señalar que el método de máxima verosimilitud deberá ser programado por usted y no podrá utilizar librerías que entreguen el valor directo (por ejemplo, la librería MASS).
Respuesta
# Carga de dataset
# Primera Parte
# Plot de densidades de la variables TotalHeight
# Plot de Likelihood
# - Generar una función de la likelihood de la normal
# - Señalar el rango de valores para observar la solución. Genere un vector con
# los valores
# Plotear gráfico de calor a través filled.contour()
ll_plot <- function(a, b) {
# Definimos la likelhood
}
# Vectorizamos nuestra función para recorrer y estimar los valores
ll_plot = Vectorize(ll_plot)
mu = ... # definimos secuencia de 20 -> 80 de 0.5 en 0.5.
sigma = ... # definimos secuencia de 5 -> 23 de 0.5 en 0.5.
ll_plot = outer(X=mu, Y=sigma, ll_plot)
# Obtenemos el mapa de calor con los valores mas probables
filled.contour(x=mu, y=sigma, z=ll_plot, xlab=expression(mu),
ylab=expression(sigma))
# Plot de comportamiento de SOLO mu al variar la cantidad de datos
# Obtener la solución que minimiza o maximiza la likelihood
# Producto de como funcionan nlminb es necesario definir un nuevo tipo de función
# para encontrar los parametros de la likelihood, por favor revisar estructura entregada.
likelihood <- function(param) {
# Definimos los parámetros de entrada de la función
mu = param[1]
sigma = param[2]
# Definimos la likelihood como la suma logaritmica de la función de densidad
}
# Optimizador para encontrar los parametros de la likelihood. Referencia: https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/nlminb
nlminb(objective=likelihood, start= , lower= , upper= )
# Segunda Parte
# Graficar la densidad y obtener el parámetro de la variable propuesta.
Para esta pregunta será necesario cargar el dataset
SAT_GPA.csv, con el que estudiaremos la correlación entre
las variables SAT y GPA. Dentro de las variables: GPA representa el
rendimiento académico de un estudiante en el sistema estadounidense,
mientras que SAT es una prueba de admisión universitaria en estados
unidos. Las actividades por realizar en esta pregunta son las
siguientes:
Total, quien representa el resultado de la
prueba SAT en USA, y la variable GPA.Nota: No se permite la utilización de librerías de bootstrap para esta parte.
Respuesta:
A work by CC6104